package com.zf.yichat.im.mapper;

import com.zf.yichat.base.FsMapper;
import com.zf.yichat.dto.RcMessageSynchronizationDto;
import com.zf.yichat.model.RcMessageSynchronization;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RcMessageSynchronizationMapper extends FsMapper<RcMessageSynchronization> {

    /**
     * 查询单聊列表
     * @param sendId
     * @param channelType
     * @param sendName
     * @param startTime
     * @param endTime
     * @param content
     * @return
     */
    List<RcMessageSynchronizationDto> selectSingleChatList(@Param("userId") Long sendId,
                                                           @Param("channelType") String channelType,
                                                           @Param("sendName") String sendName,
                                                           @Param("startTime") Long startTime,
                                                           @Param("endTime") Long endTime,
                                                           @Param("content") String content);

    /**
     * 查询群聊列表
     * @param sendId
     * @param channelType
     * @param sendName
     * @param startTime
     * @param endTime
     * @param content
     * @return
     */
    List<RcMessageSynchronizationDto> selectGroupChatList(@Param("userId") Long sendId,
                                                          @Param("channelType") String channelType,
                                                          @Param("sendName") String sendName,
                                                          @Param("startTime") Long startTime,
                                                          @Param("endTime") Long endTime,
                                                          @Param("content") String content);

    void cleanMsg(@Param("limitDate") Long limitDate);

    void deleteById(@Param("id") Integer id);

    /**
     * 查询用户的单聊记录
     * @param fromUserId
     * @param toUserId
     * @return
     */
    List<RcMessageSynchronizationDto> singleChatRecord(@Param("fromUserId") Long fromUserId, @Param("toUserId") Long toUserId);

    /**
     * 查询用户单聊对象列表
     * @param userId
     * @return
     */
    List<RcMessageSynchronizationDto> querySingleChatList(@Param("userId") Long userId);
    /**
     * 查询用户群聊群组列表
     * @param userId
     * @return
     */
    List<RcMessageSynchronizationDto> queryGroupChatList(@Param("userId") Long userId);

    /**
     * 查询用户群聊记录
     * @param groupId
     * @return
     */
    List<RcMessageSynchronizationDto> groupChatRecord(@Param("groupId") Long groupId);
}